import cache from "@/cache/cache.js";
import CacheConstant from "@/cache/CacheConstant.js";

export default {

  /**
   * 判断用户是否登录，true 登录，false 未登录
   */
  isLogin: () => {
    return cache.getTextCache(CacheConstant.TOKEN_KEY) !== null && cache.getJsonCache(CacheConstant.USER_INFO_KEY) != null;
  },

  /**
   * 存储用户信息
   */
  setUserInfo: (userInfo) => {
    cache.setJson(CacheConstant.USER_INFO_KEY, userInfo);
  },

  /**
   * 存储用户登录标识
   */
  setToken: (token) => {
    cache.setText(CacheConstant.TOKEN_KEY, token);
  },

  /**
   * 获取用户登录标识
   */
  getToken: () => {
    return cache.getTextCache(CacheConstant.TOKEN_KEY);
  },

  /**
   * 获取用户信息详情
   */
  getUserInfo: () => {
    return cache.getJsonCache(CacheConstant.USER_INFO_KEY);
  },

  /**
   * 获取用户详情信息
   */
  getUserDetail: () => {
    return cache.getJsonCache(CacheConstant.USER_INFO_KEY).userDetail;
  },

  /**
   * 获取用户唯一标识
   */
  getUserUid: () => {
    return cache.getJsonCache(CacheConstant.USER_INFO_KEY).uId;
  },

  /**
   * 清除用户登录标识
   */
  clearToken: () => {
    cache.remove(CacheConstant.TOKEN_KEY);
  },

  /**
   * 清除用户信息
   */
  clearUserInfo: () => {
    cache.remove(CacheConstant.USER_INFO_KEY);
  },

  /**
   * 判断用户收藏列表是否为空
   */
  isCollectEmpty: () => {
    return cache.getJsonCache(CacheConstant.COLLECT_LIST_KEY) === null;
  },

  /**
   * 存储收藏列表数据
   */
  setCollectList: (collectList) => {
    let exitsAdd = false;
    let tempCollectList = JSON.parse(JSON.stringify(collectList));
    tempCollectList.forEach(collect => {
      if (collect.displayType) collect.displayType = 4;
      if (collect.isAdd) exitsAdd = true;
    })
    if (exitsAdd) tempCollectList.pop();
    cache.setJson(CacheConstant.COLLECT_LIST_KEY, tempCollectList);
  },

  /**
   * 获取收藏列表
   */
  getCollectList: () => {
    return cache.getJsonCache(CacheConstant.COLLECT_LIST_KEY);
  },

  /**
   * 清除收藏列表数据
   */
  clearCollectList: () => {
    cache.remove(CacheConstant.COLLECT_LIST_KEY);
  },

  /**
   * 获取使用帮助提示次数
   */
  getGuideCount: () => {
    return cache.getNumberCache(CacheConstant.GUIDE_REMIND_COUNT);
  },

  /**
   * 存储使用帮助提醒次数
   */
  setGuideCount: (count) => {
    cache.setText(CacheConstant.GUIDE_REMIND_COUNT, count);
  }


}